

// $(function () {
//
// //短信发送
//     let $smscode = $('.sms-captcha');  //获取按钮
//     $smscode.click(function () {
//         //参数验证  手机号  图形验证码
//         //发送ajax
//         //成功和失败回调
//         //正则匹配用户名
//         let $mobile = $('#mobile');
//         let sMobile = $mobile.val();
//         if (sMobile===''){
//         // alert('请输入用户名')
//             message.showError('手机号不能为空');//调用message.js模板的样式
//             return
//         }
//         if(!(/^1[358]\d{9}$/).test(sMobile)){
//             message.showInfo('请输入11位手机号');//调用message.js模板的样式
//             return
//         }
//
//
//         //发送ajax
//         //参数
//         let DataParams = {
//             'mobile':sMobile,
//         };
//         $.ajax({
//             url:'/user/passwd/',
//             type:'POST',
//             // headers:{
//             //     'X-CSRFToken': getCookie('csrftoken')
//             // },
//             data:JSON.stringify(DataParams), //参数解析成json
//             content:'application/json; charset=utf-8',//告诉后台
//             dataType:'json'
//
//         })
//             .done(function (res) {
//                 //响应成功
//
//                 if(res.errno==='0'){
//                     message.showSuccess('短信验证码发送成功');
//                     //倒计时
//                     let num = 60;
//                     $smscode.disabled=true;
//                     let t = setInterval(function () {
//                         if(num===1){
//                             //清除定时器
//                             clearInterval();
//                             $smscode.html('获取验证码');
//                             $smscode.attr('disabled',false)//恢复按钮效果
//
//                         }else {
//                             num-=1;
//                             //展示倒计时
//                             $smscode.html(num+'秒');
//                             $smscode.attr("disabled", num);	//按钮状态不可用
//                         }
//                     },1000);
//                 }else {
//                     message.showError(res.errmsg);
//                 }
//             })
//             .fail(function () {
//                 message.showError('服务器超时，请稍后再试!')
//             })
//     });
//
//
//
//
//  // 5、注册逻辑
//     let $register = $('.form-contain');  // 获取注册表单元素
//     $register.submit(function (e) {
//     // 阻止默认提交操作
//     e.preventDefault();
//
//     let smobile = $("input[name=telephone]").val();
//     let spassword = $("input[name=password_repeat]").val();
//
//     let sSmsCode = $("input[name=sms_captcha]").val();
//
//
//
//     if (smobile===''){
//         // alert('请输入用户名')
//         message.showError('手机号不能为空');//调用message.js模板的样式
//         return
//         }
//
//     // 判断用户输入的密码是否为空
//     if (!spassword) {
//       message.showError('密码不能为空');
//       return
//     }
//
//     // const reg = /^(?![^A-Za-z]+$)(?![^0-9]+$)[\x21-x7e]{6,18}$/
//     // 以首字母开头，必须包含数字的6-18位
//     // 判断用户输入的密码和确认密码长度是否为6-20位
//       if (!(/^[0-9A-Za-z]{6,20}$/).test(spassword)){
//          message.showError('请输入6到20位密码');
//           return
//       }
//
//
//     // 判断用户输入的短信验证码是否为6位数字
//     if (!(/^\d{6}$/).test(sSmsCode)) {
//       message.showError('短信验证码格式不正确，必须为6位数字！');
//       return
//     }
//
//     // 发起注册请求
//     // 1、创建请求参数
//     let SdataParams = {
//       "password": spassword,
//       "mobile": smobile,
//       "sms_code": sSmsCode
//     };
//
//       // alert(SdataParams);
//     // 2、创建ajax请求
//     $.ajax({
//
//         // 请求地址
//         url: "/user/c/",  // url尾部需要添加/
//         // 请求方式
//         type: "POST",
//         data: JSON.stringify(SdataParams),
//         // headers: {
//         //       // 根据后端开启的CSRFProtect保护，cookie字段名固定为X-CSRFToken
//         // "X-CSRFToken": getCookie("csrftoken")
//         // },
//         // 请求内容的数据类型（前端发给后端的格式）
//         contentType: "application/json; charset=utf-8",
//         // 响应数据的格式（后端返回给前端的格式）
//         dataType: "json",
//
//     })
//       .done(function (res) {
//         if (res.errno === "0") {
//           // 注册成功
//           message.showSuccess(res.errmsg);
//            setTimeout(() => {
//             // 注册成功之后重定向到主页
//             window.location.href = '/user/login/';
//           }, 1500)
//         } else {
//           // 注册失败，打印错误信息
//           message.showError(res.errmsg);
//         }
//       })
//       .fail(function(){
//         message.showError('服务器超时，请重试！');
//       });
//
//   });
// });




$(function () {
    let image_code_uuid = ''; //uuid
    let isMobileFlag = false;
    let isUsernameFlag = false;
    //图形验证码
    let $img = $('.form-contain .captcha-graph-img img');  //获取坐标
    genre();
    $img.click(genre);

    function genre() {
        image_code_uuid = generateUUID();
        let imageCodeUrl = '/image_code/' + image_code_uuid;
        $img.attr('src',imageCodeUrl);

    }

         // 生成图片UUID验证码
    function generateUUID() {
        let d = new Date().getTime();
        if (window.performance && typeof window.performance.now === "function") {
            d += performance.now(); //use high-precision timer if available
        }
    let uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
        let r = (d + Math.random() * 16) % 16 | 0;
        d = Math.floor(d / 16);
        return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
         });

    return uuid;
  }


//手机号获取
    let $mobile = $('#mobile');
    $mobile.blur(check_mobile);
    function check_mobile() {
        isMobileFlag = false;
        let sMobile = $mobile.val();

    if (sMobile===''){
        // alert('请输入用户名')
        message.showError('请输入手机号');//调用message.js模板的样式
        return
    }
    //正则匹配用户名
        if(!(/^1[358]\d{9}$/).test(sMobile)){
            message.showInfo('请输入11位手机号');//调用message.js模板的样式
            return
        }
        // //发送ajax请求
        $.ajax({
            url:'/mobile/'+ sMobile + '/',
            type:'GET',
            dataType:'json',
        })
        //回调
            .done(function (res) {

                if (res.data['count'] == 1) {
                  // alert('此用户名已注册')
                  // message.showError('此手机号可用')  //调用样式
                    isMobileFlag = true
                }else{
                    message.showError('此手机号没注册');

                }
            })

        //不成功
            .fail(function () {
                message.showError('服务器超时，请稍后再试！')

            })
    }



//短信发送
    let $smscode = $('.sms-captcha');  //获取按钮
    let $imgcode = $('#input_captcha'); //图形码输入框

    $smscode.click(function () {
        //参数验证  手机号  图形验证码
        //发送ajax
        //成功和失败回调
        if(!isMobileFlag){
            check_mobile();
            return
        }
        //验证图形
        let text = $imgcode.val();
        if(!text){
            message.showError('请输入图形验证码');
            return
        }
        if(!image_code_uuid){
            message.showError('图形uuid为空');
            return
        }

        //发送ajax
        //参数
        let DataParams = {
            'mobile':$mobile.val(),
            'text':text,
            'image_code_id':image_code_uuid,
        };
        $.ajax({
            url:'/sms_code/',
            type:'POST',
            headers:{
                'X-CSRFToken': getCookie('csrftoken')
            },
            data:JSON.stringify(DataParams), //参数解析成json
            content:'application/json; charset=utf-8',//告诉后台
            dataType:'json'

        })
            .done(function (res) {
                //响应成功


                if(res.errno==='0'){
                    message.showSuccess('短信验证码发送成功');
                    //倒计时
                    let num = 60;
                    $smscode.disabled=true;
                    let t = setInterval(function () {
                        if(num===1){
                            //清除定时器
                            clearInterval();
                            $smscode.html('获取验证码');
                            $smscode.attr('disabled',false)//恢复按钮效果

                        }else {
                            num-=1;
                            //展示倒计时
                            $smscode.html(num+'秒');
                            $smscode.attr("disabled", num);	//按钮状态不可用
                        }
                    },1000);
                }else {
                    message.showError(res.errmsg);
                }
            })
            .fail(function () {
                message.showError('服务器超时，请稍后再试!')
            })
    });


      // 5、注册逻辑
    let $register = $('.form-contain');  // 获取注册表单元素
    $register.submit(function (e) {
    // 阻止默认提交操作
    e.preventDefault();




    let sPassword = $("input[name=password]").val();


    let sPasswordRepeat = $("input[name=password_repeat]").val();


    let sMobile = $mobile.val();  // 获取用户输入的手机号码字符串
    let sSmsCode = $("input[name=sms_captcha]").val();



    // 判断手机号是否为空，是否已注册
    if (!isMobileFlag) {
        check_mobile();
      return
    }

    // 判断用户输入的密码是否为空
    if ((!sPasswordRepeat)) {
      message.showError('密码不能为空');
      return
    }

    // const reg = /^(?![^A-Za-z]+$)(?![^0-9]+$)[\x21-x7e]{6,18}$/
    // 以首字母开头，必须包含数字的6-18位
    // 判断用户输入的密码和确认密码长度是否为6-20位
      if (!(/^[0-9A-Za-z]{6,20}$/).test(sPassword)){
         message.showError('请输入6到20位密码');
          return
      }



    // 判断用户输入的短信验证码是否为6位数字
    if (!(/^\d{6}$/).test(sSmsCode)) {
      message.showError('短信验证码格式不正确，必须为6位数字！');
      return
    }

    // 发起注册请求
    // 1、创建请求参数
    let SdataParams = {
      "password_repeat": sPasswordRepeat,
      "mobile": sMobile,
      "sms_code": sSmsCode
    };

      // alert(SdataParams);
    // 2、创建ajax请求
    $.ajax({

        // 请求地址
        url: "/user/password/",  // url尾部需要添加/
        // 请求方式
        type: "POST",
        data: JSON.stringify(SdataParams),
        headers: {
              // 根据后端开启的CSRFProtect保护，cookie字段名固定为X-CSRFToken
        "X-CSRFToken": getCookie("csrftoken")
        },
        // 请求内容的数据类型（前端发给后端的格式）
        contentType: "application/json; charset=utf-8",
        // 响应数据的格式（后端返回给前端的格式）
        dataType: "json",

    })
      .done(function (res) {
        if (res.errno === "0") {
          // 注册成功
          message.showSuccess(res.errmsg);
           setTimeout(() => {
            // 注册成功之后重定向到主页
            window.location.href = '/user/login/';
          }, 1500)
        } else {
          // 注册失败，打印错误信息
          message.showError(res.errmsg);
        }
      })
      .fail(function(){
        message.showError('服务器超时，请重试！');
      });

  });



    //获取cookie
    function cookie(name) {
        // console.log(document.cookie)

    }
      // get cookie using jQuery
    function getCookie(name) {
    let cookieValue = null;
    if (document.cookie && document.cookie !== '') {//逻辑与
    let cookies = document.cookie.split(';');//分割
        for (let i = 0; i < cookies.length; i++) {
        let cookie = jQuery.trim(cookies[i]);//去除两端的空格
        // Does this cookie string begin with the name we want?
        if (cookie.substring(0, name.length + 1) === (name + '=')) {
          cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
          break;
        }
      }
    }
    return cookieValue;
  }



});